package com.yuanshen.receive;

import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

/**
 * @author 朱厚强
 * @version 1.0
 * @classname FanoutListener
 * Fanout 适用于广播（一对多）的场景。
 * 以广播的模式的方式接收信息
 */
//@Component
public class FanoutListener {
//  交换机--广播方式接受 -->注解方式
    // 注解方式实现 交换器与队列绑定
    @RabbitListener(bindings = @QueueBinding(
            // 第一个值是队列相关的
            value = @Queue(name = "zhuhq.queue11"),
            // 第二个值是和交换机相关的
            exchange = @Exchange(name = "zhuhq.fanout",type = ExchangeTypes.FANOUT),
            // 第三个值是和key相关的 现在没有路由，所以先不管他。
            key = {""}
    ))
    public void receive11(String message){
        System.out.println("receive1接收message = " + message);
    }
//     注解方式实现 交换器与队列绑定
    @RabbitListener(bindings = @QueueBinding(
            // 第一个值是队列相关的
            value = @Queue(name = "zhuhq.queue22"),
            // 第二个值是和交换机相关的
            exchange = @Exchange(name = "zhuhq.fanout",type = ExchangeTypes.FANOUT),
            // 第三个值是和key相关的 现在没有路由，所以先不管他。
            key = {""}
    ))
    public void receive22(String message){
        System.out.println("receive2接收message = " + message);
    }

}
